package com.groupname.dangerousdelves;

//-------------------------------------------------------------------------
/**
 *  This interface represents the graphics of a game.
 *
 *  @author Chris Fieldman (Chrisf90)
 *  @version 2012.11.13
 */
public interface Graphics
{
    // -------------------------------------------------------------------------
    /**
     *  This enumeration represents the various formats a pixel map can have.
     *
     *  @author Chris Fieldman
     *  @version 2012.11.13
     */
    public static enum PixmapFormat
    {
        ARGB888,
        ARGB4444,
        RGB565
    }
    //~-------------------------------------------------------------------------
    // Methods
    /**
     * Place a description of your method here.
     * @param filename
     * @param format
     * @return
     */
    public Pixmap newPixmap(String filename, PixmapFormat format);

    // ----------------------------------------------------------
    /**
     * Place a description of your method here.
     * @param color
     */
    public void clear(int color);

    // ----------------------------------------------------------
    /**
     * Place a description of your method here.
     * @param x
     * @param y
     * @param color
     */
    public void drawPixel(int x, int y, int color);

    // ----------------------------------------------------------
    /**
     * Place a description of your method here.
     * @param x
     * @param y
     * @param x2
     * @param y2
     * @param color
     */
    public void drawLine(int x, int y, int x2, int y2, int color);

    // ----------------------------------------------------------
    /**
     * Place a description of your method here.
     * @param x
     * @param y
     * @param width
     * @param height
     * @param color
     */
    public void drawRect(int x, int y, int width, int height, int color);

    // ----------------------------------------------------------
    /**
     * Place a description of your method here.
     * @param pixmap
     * @param x
     * @param y
     * @param srcX
     * @param srcY
     * @param srcWidth
     * @param srcHeight
     */
    public void drawPixmap(Pixmap pixmap, int x, int y, int srcX, int srcY,
        int srcWidth, int srcHeight);

    // ----------------------------------------------------------
    /**
     * Place a description of your method here.
     * @param pixmap
     * @param x
     * @param y
     */
    public void drawPixmap(Pixmap pixmap, int x, int y);

    // ----------------------------------------------------------
    /**
     * Place a description of your method here.
     * @return
     */
    public int getWidth();

    // ----------------------------------------------------------
    /**
     * Place a description of your method here.
     * @return
     */
    public int getHeight();
}
